// var CheckObject =  (a)=> {};
// CheckObject.prototype = function (a) {
//   var checkName : function () {
//       // code
//       return 1;
//     },
//     checkEmail : function () {
//       // code
//       return 2;
//     },
//     checkPassword : function () {
//       // code
//       return 3;
//     };
// };
// //使用
// var Check = new CheckObject();
// Check.checkName().checkEmail().checkPassword();
// ===================================OSS操作=====================================
async function oss(fileName, file, fileCount) {
  promise = new Promise((resolve, reject) => {
    var dataString;

    function upload3(fileName, file) {
      //文件后缀类型、文件流、节点、旁边input元素
      // console.log("file字节流大小：", parseFloat(file.size) / 1024);
      try {
        var suffix = fileName.substr(fileName.indexOf("."));
        var obj = timestamp();
        var storeAs = "file/" + obj + suffix; //文件名和存放路径
        client
          .multipartUpload(storeAs, file)
          .then(function (result) {
            var url = result.res.requestUrls[0];
            var length = url.lastIndexOf("?");
            OSSresult = result;
            if (result.res.status == 200 || length == "-1") {
              //   console.log("oss上传成功");
            } else {
              Toast("上传失败！", "error", 2000);
            }
          })
          .catch(function (err) {
            console.log(err);
            Toast("上传错误！", "error", 1000);
          })
          .finally(function (res) {
            //执行完不管异常或正常都执行此方法
            var json = {
              uplodResultData: uplodResultData,
              OSSresult: OSSresult,
              res: res,
              fileName,
              fileCount,
            };
            resolve(json);
          });
      } catch (error) {
        console.log(error);
      }

      //   return
    }
    //   upload3(name, file);
    var uplodResultData2 = upload3(fileName, file, fileCount); //文件后缀类型、文件流 //上传文件
  });

  promise
    //   oss(fileName, file, type)
    .then((arg) => {
      OSSresult = arg.OSSresult;
      var uplodResultUrl;
      //   console.log("OSSresult上传结果：", OSSresult);
      if (OSSresult.res.status == 200 || length == "-1") {
        //小于100kb返回的第一层结构中包含url，大于100kb返回结果在第二层中含有数组url
        var OSSresultRessUrls = OSSresult.res.requestUrls[0];
        // console.log("OSSresultRessUrls:", OSSresultRessUrls);
        var is100kb = OSSresultRessUrls.indexOf("?");
        if (is100kb == "-1") {
          uplodResultUrl = OSSresult.url; //直接获取外部url
          //   console.log("小于100kb", is100kb, uplodResultUrl);
        } else {
          var qiepianUrlsArr = OSSresultRessUrls.split("?");
          uplodResultUrl = qiepianUrlsArr[0];
          //   console.log("大于100KB", is100kb, uplodResultUrl);
        }
        // console.log("上传定制项目返回：", updataJosn);
        // if (iframeNmae == "iframe3") {
        //   var despath = "desiProjectApi";
        // } else if (iframeNmae == "iframe2") {
        //   var despath = "updateProjecData";
        // }
        // console.log("iframeNmae", iframeNmae);
        var alinkStr = ` <a title="单击附件链接可以下载附件！" target="_blank" download href="${uplodResultUrl}" aria-placeholder="附件链接" alt="附件链接" class="fujinaLink">
         <input type="text" name="fileName${arg.fileCount}" value="${arg.fileName}" class="hide" >
         <input type="text" name="fileCount${arg.fileCount}" value="${uplodResultUrl}"class="hide" >
         点击下载->&nbsp&nbsp &nbsp ${arg.fileName} 
         <button class="btn  btn-default  abtn">&Chi;</button>
         </a>`;
        $("#fileAdd").append(alinkStr);
        $("#loading").fadeOut();
        return uplodResultUrl;
      } else {
        Toast("OSS上传失败！", "error", 2000);
      }
    })
    .catch((arg) => {
      // console.log(`执行reject,参数是${arg}`);
      window.parent.narn("warn", "钣金数据开始不能全部为空！", "错误");
    })
    .finally(() => {
      //   console.log("结束promise");
    });
}
// //////////////////////////osss上传操作结束//////////////////////////////////////////

// 文件选择事件===========================================
var fileCount = 0;
var fujinaLinks = 0;
window.onload = function () {
  fujinaLinks = $(".fujinaLink").length;
};

function fileOnchange2(e) {
  fujinaLinks = $(".fujinaLink").length;
  if (fujinaLinks <= 0) {
    fileCount++;
  } else {
    fileCount = fujinaLinks + 1 || 1;
  }

  //   console.log(fujinaLinks, fileCount);
  //   $("#loading").fadeIn();
  //   var imgBase64Url = $("#file").attr("value");
  var fileName = $("#file2").prop("files")[0].name || $("#file2").val();
  //   console.log(fileName);
  var txtFile = $("#file2").prop("files")[0] || null; //获取选择文件
  //   console.log("imgfFile", txtFile);
  var filesize = txtFile.size; //注意，这里读到对象数据包里面的属性size字节数
  imgfFilemaxSize = filesize / 1024; //转化为字节
  //   console.log("imgfFilemaxSize", imgfFilemaxSize);
  if (fileCount > 5) {
    layer.confirm("最多添加五份附件！");
  } else {
    var ossResUrl = oss(fileName, txtFile, fileCount);
    // fileCount++;
  }
  //   console.log(fileName, fileCount);
}

$("#addForm").on("click", ".abtn", function () {
  window.event.returnValue = false;
  $(this).parent().remove();
  fileCount--;
});
